home *** CD-ROM | disk | FTP | other *** search
/ BMUG PD-ROM B4 / PD-ROM B4.iso / Entertainment / Strategy / Robots / bot 1.0.1 / Tutorial / ASM / Corner < prev    next >
Text File  |  1991-06-23  |  1KB  |  59 lines

  1. !
  2. ! Corner
  3. !
  4. ! This bot is just like Finder, except that it first moves into
  5. ! the upper-left (0,0) corner of the arena.  This way, it only
  6. ! needs to scan a 90 degree arc to cover the whole arena.
  7. !
  8.  
  9. #DATA
  10.  
  11. EQU INCR 7
  12. EQU START_SCAN 0
  13. DEF S
  14. DEF X_VEL
  15. DEF Y_VEL
  16.  
  17. #CODE ASM
  18.  
  19. :XMOVE_TO_CORNER
  20.     NEG X0, X_VEL           ! Velocity equals negative position
  21.     VEL X_VEL, 0
  22.     CMP X0, 10              ! While X-position > 10, keep
  23.     BGT XMOVE_TO_CORNER     !   moving,
  24.     VEL 0, 0                ! (otherwise) stop
  25. :YMOVE_TO_CORNER
  26.     NEG Y0, Y_VEL           ! Velocity equals negative position
  27.     VEL 0, Y_VEL
  28.     CMP Y0, 10              ! While Y-position > 10, keep
  29.     BGT YMOVE_TO_CORNER     !   moving,
  30.     VEL 0, 0                ! (otherwise) stop
  31.     
  32.     MOV START_SCAN, S       ! Initialize scan angle
  33.     
  34. :TRACK_ENEMY
  35.     SUB 20, S               ! When the scanlock is lost, come
  36.                             !   back here to look for him
  37. :SCANLOOP
  38.     ADD INCR, S
  39.     CMP S, 93               ! Avoid scanning the arena wall:
  40.     BLE CONTINUE            ! if angle > 93, Reset to (roughly)
  41.     SUB 96, S               ! 0.
  42.     
  43. :CONTINUE                   ! The following is the Finder code:
  44.     SCN S
  45.     CMP S0, 0
  46.     BEQ SCANLOOP
  47.     
  48. :SCANLOCK
  49.     MOV S1, R1
  50.     FIR 1
  51.     NOP                     ! Used to synchronize the fire loop
  52.     NOP                     ! with the weapon cycle time (=10)
  53.     SCN S
  54.     CMP S0, 0
  55.     BEQ TRACK_ENEMY
  56.     JMP SCANLOCK
  57.  
  58. #END
  59.